layui.define(['table', 'layer'], function (exports) {
    "use strict";
    var checked = 0;
    var $ = layui.$
        , table = layui.table
        , layer = layui.layer
        , MOD_NAME = 'transfer2', LEFT_TABLE = 'left-table-', RIGHT_TABLE = 'right-table-', LEFT_BTN = 'left-btn-', RIGHT_BTN = 'right-btn-', FILTER2 = 'test2'
        , DISABLED = 'layui-btn-disabled', BTN = 'button', BTN_STLY2 = 'btn2', MD5 = 'layui-col-md4', MD2 = 'layui-col-md2'
        , transfer2 = {
            index: layui.transfer2 ? (layui.transfer2 + 1000) : 0
            , idData: [] //ID池
            , data: [] //原始数据
            , options: []
            , update: function (data, filed) {
                if (filed == '' && data && data.length > 0) {
                    var d = [];
                    $.each(data, function (k, v) {
                        v.LAY_TABLE_INDEX && delete v.LAY_TABLE_INDEX
                        v.LAY_CHECKED && delete v.LAY_CHECKED
                        d.push(v)
                    })
                    return d
                } else if (filed && data && data.length > 0) {
                    d = '';
                    $.each(data, function (k, v) {
                        if (k === 0) {
                            d += v[filed]
                        } else {
                            d += ',' + v[filed]
                        }
                    })
                    return d
                } else {
                    return [];
                }
            }
            , get: function (option, type, field = '') {
                var index = option.index
                var data = transfer2.data;
                if (!index) {
                    return [];
                }

                if (type === 'all') {
                    var d = [], d1 = [], d2 = [];
                    for (var i = data.length - 1; i >= 0; i--) {
                        if (data[i].id == LEFT_TABLE + index) {
                            d1 = data[i].data;
                        } else if (data[i].id == RIGHT_TABLE + index) {
                            d2 = data[i].data;
                        }
                    }
                    d.push({ left: d1 })
                    d.push({ right: d2 })
                    return d
                } else if (type === 'left' || type === 'l') {
                    for (var i = data.length - 1; i >= 0; i--) {
                        if (data[i].id == LEFT_TABLE + index) {
                            return this.update(data[i].data, field);
                        }
                    }
                } else if (type === 'right' || type === 'r') {
                    for (var i = data.length - 1; i >= 0; i--) {
                        if (data[i].id == RIGHT_TABLE + index) {
                            return this.update(data[i].data, field);
                        }
                    }
                }
            }
        }
        , thisRate = function () {
            // console.log("-*********--> "+$("#csk_type").text());
            // console.log("-*********--> "+checked);
            if ($("#csk_type").text() == 1 || $("#csk_type").text() == 11) {
                $("#root0 div[lay-id$='right-table-1']").css("height", "200px");
                //$("#root0 div[lay-id$='right-table-1'] div.layui-table-body.layui-table-main").css("height","125px");
                $("#root0 div[lay-id$='right-table-1'] div.layui-table-body.layui-table-main").css("height", "170px");
                if (checked == 0) {
                    var html1 = '<div style="float:left;width:400px;height:200px;">\
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="0" style="float:left;width:30px;margin-top:3px;" checked />全局 </label> \
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="1" style="float:left;width:30px;margin-top:3px;" />组织层级 </label> \
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="2" style="float:left;width:30px;margin-top:3px;" />组织分组 </label> \
                    <div id="table_cj"><table id="popup4_user_table" lay-filter="popup4_user_table" style="margin-top:15px;"></table></div>  \
                    <div id="table_fz"><table id="popup5_user_table" lay-filter="popup5_user_table" style="margin-top:15px;"></table></div>  \
                    </div>';
                    $("#root0 div.layui-row").append(html1);
                } else if (checked == 1) {
                    var html1 = '<div style="float:left;width:400px;height:200px;">\
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="0" style="float:left;width:30px;margin-top:3px;" />全局 </label> \
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="1" style="float:left;width:30px;margin-top:3px;" checked />组织层级 </label> \
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="2" style="float:left;width:30px;margin-top:3px;" />组织分组 </label> \
                    <div id="table_cj"><table id="popup4_user_table" lay-filter="popup4_user_table" style="margin-top:15px;"></table></div>  \
                    <div id="table_fz"><table id="popup5_user_table" lay-filter="popup5_user_table" style="margin-top:15px;"></table></div>  \
                    </div>';
                    $("#root0 div.layui-row").append(html1);
                    $("#popup4_user_table").click();
                } else if (checked == 2) {
                    var html1 = '<div style="float:left;width:400px;height:200px;">\
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="0" style="float:left;width:30px;margin-top:3px;" />全局 </label> \
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="1" style="float:left;width:30px;margin-top:3px;" />组织层级 </label> \
                    <label style="float:left;padding-right:20px;"><input name="Fruit" type="radio" value="2" style="float:left;width:30px;margin-top:3px;" checked />组织分组 </label> \
                    <div id="table_cj"><table id="popup4_user_table" lay-filter="popup4_user_table" style="margin-top:15px;"></table></div>  \
                    <div id="table_fz"><table id="popup5_user_table" lay-filter="popup5_user_table" style="margin-top:15px;"></table></div>  \
                    </div>';
                    $("#root0 div.layui-row").append(html1);
                    $("#popup5_user_table").click();
                }

                checked = $("input[name=Fruit]:checked").val();
                if (checked == 0) {
                    $("#table_cj").css("display", "none");
                    $("#table_fz").css("display", "none");
                } else if (checked == 1) {
                    $("#table_cj").css("display", "block");
                    $("#table_fz").css("display", "none");
                    $("#popup4_table").click();
                } else if (checked == 2) {
                    $("#table_cj").css("display", "none");
                    $("#table_fz").css("display", "block");
                    $("#popup5_table").click();
                }

            }
            $("input[name=Fruit]").click(function () {
                checked = $("input[name=Fruit]:checked").val();
                if (checked == 0) {
                    $("#table_cj").css("display", "none");
                    $("#table_fz").css("display", "none");
                } else if (checked == 1) {
                    $("#table_cj").css("display", "block");
                    $("#table_fz").css("display", "none");
                    $("#popup4_table").click();
                } else if (checked == 2) {
                    $("#table_cj").css("display", "none");
                    $("#table_fz").css("display", "block");
                    $("#popup5_table").click();
                }
            });
            var that = this
            return {
                index: that.index
            }

        }
        , Class = function (options) {
            var that = this
            that.index = transfer2.index ? transfer2.index : ++transfer2.index
            that.config = options
            transfer2.options = options
            that.createHTMLDocument()
            that.render()
        };
    Class.prototype.createHTMLDocument = function () {
        var that = this
            , elem = that.config.elem
            , index = that.index;
        //创建页面元素
        var html = '<div class="layui-container">\
                    <div class="layui-row">\
                      <div class="layui-col-md3">\
                        <table class="layui-hide" id="'+ LEFT_TABLE + index + '" lay-filter="' + FILTER2 + '"></table>\
                      </div>\
                      <div class="layui-col-md1" style="text-align: center;margin-top:170px">\
                        <div id="'+ LEFT_BTN + index + '"  style="margin-bottom: 10px;"><button data-type="0" data-index="' + index + '" class="layui-btn  ' + DISABLED + ' ' + BTN_STLY2 + '"> <i class="layui-icon">&#xe602;</i></button></div>\
                        <div id="'+ RIGHT_BTN + index + '" ><button data-type="1" data-index="' + index + '" class="layui-btn ' + DISABLED + ' ' + BTN_STLY2 + '"> <i class="layui-icon">&#xe603;</i></button></div>\
                      </div>\
                      <div class="layui-col-md6">\
                        <table class="layui-hide" id="'+ RIGHT_TABLE + index + '" lay-filter="' + FILTER2 + '"></table>\
                      </div>\
                    </div>\
                  </div>';
        $(elem).html(html)
    }
    //初始化表格
    Class.prototype.render = function () {
        var that = this, options = that.config;
        var d1_c = {
            elem: '#' + LEFT_TABLE + that.index
            , cols: [options.cols]
            , data: (options.data[0] ? options.data[0] : [])
            , id: LEFT_TABLE + that.index
        }
        var d2_c = {
            elem: '#' + RIGHT_TABLE + that.index
            , cols: [options.cols]
            , data: (options.data[1] ? options.data[1] : [])
            , id: RIGHT_TABLE + that.index
        }
        if (options.tabConfig) {
            d1_c = $.extend(d1_c, options.tabConfig)
            d2_c = $.extend(d2_c, options.tabConfig)
        }
        transfer2.idData.push(that.index)
        transfer2.data = [];
        transfer2.data.push({ id: LEFT_TABLE + that.index, data: (options.data[0] ? options.data[0] : []) })
        transfer2.data.push({ id: RIGHT_TABLE + that.index, data: (options.data[1] ? options.data[1] : []) })
        table.render(d1_c)
        table.render(d2_c)
        that.move()
    };
    //左右移动按钮根据左表格居中
    Class.prototype.move = function () {
        var that = this
            , elem = $('#' + LEFT_TABLE + that.index)
            , h = elem.parent().height();
        h = h / 2 - 44;
        elem.parents('.layui-row').find('.' + MD2).css('padding-top', h + 'px')
    }
    //点击事件
    $(document).on('click', '.' + BTN_STLY2, function () {
        var othis = $(this), type = othis.data('type');
        datas(type)
    })
    //数据处理
    //data 选中数据
    //type 类型 0 左 1 右
    function datas(type) {
        var d = transfer2.data;
        var d1 = d[0].data;
        var d2 = d[1].data;
        var _d = [];
        if ($("#csk_type").text() == 1) {//用户权限操作
            if (d1.length > 0 && type == 0) {//左边的数据移动到右表
                var n_d1 = [];
                d1.reverse()
                for (var i = 0; i < d1.length; i++) {
                    if (d1[i].LAY_CHECKED === true) {
                        delete d1[i].LAY_CHECKED
                        delete d1[i].LAY_TABLE_INDEX
                        // d2.unshift(d1[i])
                    } else {
                        delete d1[i].LAY_TABLE_INDEX
                        n_d1.push(d1[i])
                    }
                }

                _d.push(n_d1, d2)

            } else if (d2.length > 0 && type == 1) {//右边的数据移动到左表
                var n_d2 = [];
                // console.log("d1--左边--> "+JSON.stringify(d1));
                for (var i = 0; i < d2.length; i++) {
                    // console.log("d2[i]--> "+JSON.stringify(d2[i]));
                    if (d2[i].LAY_CHECKED && d2[i].LAY_CHECKED === true) {
                        delete d2[i].LAY_CHECKED
                        var d11 = JSON.stringify(d2[i]);//当前穿梭的数据
                        var d111 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js bug）
                        checked = $("input[name=Fruit]:checked").val();//单选选中类型
                        if (checked == 0) {//全局
                            var d110 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js）
                            d110["unitId"] = $("#user_ownerId").text();
                            d110["unlimited"] = "T";
                            d110["ugId"] = "-1";
                            d110["userId"] = $("#user_userId").text();
                            d110["ownerId"] = $("#user_ownerId").text();

                            d110["unlimitedCp"] = "是";//是否全局
                            var quan1 = 0;
                            for (var u0 = 0; u0 < d1.length; u0++) {
                                if (d1[u0]["privId"] == d110["privId"] && d1[u0]["unitId"] == d110["unitId"] && d1[u0]["ugId"] == d110["ugId"]) {
                                    quan1 = 1;
                                }
                            }
                            if (quan1 == 0) {
                                d1.push(d110)
                            }
                        } else if (checked == 1) {//组织层级
                            var data1 = JSON.parse($("#csk_data").text());//组织层级中的表格数据
                            if (data1.length < 1) {
                                layer.msg("组织层级未正常选择数据");
                            } else {
                                var csk0 = [];
                                for (var u1 = 0; u1 < d1.length; u1++) {
                                    if (d1[u1]["privId"] == d111["privId"]) {
                                        csk0.push(d1[u1])
                                    }
                                }
                                // console.log("穿梭框第"+(i+1)+"条相等数据   "+"csk0-->"+JSON.stringify(csk0)+"    csk0.length-->"+csk0.length);
                                for (var u = 0; u < data1.length; u++) {
                                    var d112 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js）
                                    d112["unitId"] = data1[u]["unitId"]
                                    // d112["unlimited"] = data1[u]["unlimited"]
                                    d112["ugId"] = data1[u]["ugId"]
                                    d112["userId"] = $("#user_userId").text();
                                    d112["ownerId"] = $("#user_ownerId").text();

                                    d112["unitCode"] = data1[u]["unitCode"]//组织代码
                                    d112["unitName"] = data1[u]["unitName"]//组织名称
                                    d112["unlimited"] = "F";
                                    d112["unlimitedCp"] = "否";//是否全局
                                    if (csk0.length > 0) {
                                        var p = 0;
                                        for (var u2 = 0; u2 < csk0.length; u2++) {
                                            if (csk0[u2]["unitId"] == d112["unitId"]) {
                                                p = 1
                                            }
                                        }
                                        if (p == 0) {
                                            d1.push(d112)
                                        }
                                    } else {
                                        d1.push(d112)
                                    }
                                }
                            }
                        } else if (checked == 2) {//组织分组
                            var ug_data = JSON.parse($("#ug_data").text());//组织分组中的表格数据
                            if (ug_data.length < 1) {
                                layer.msg("组织分组未正常选择数据");
                            } else {
                                var csk1 = [];
                                for (var y1 = 0; y1 < d1.length; y1++) {
                                    if (d1[y1]["privId"] == d111["privId"]) {
                                        csk1.push(d1[y1])
                                    }
                                }
                                for (var y2 = 0; y2 < ug_data.length; y2++) {
                                    var d113 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js）
                                    d113["unitId"] = 0
                                    // d113["unlimited"] = "T"
                                    d113["ugId"] = ug_data[y2]["ugId"]
                                    d113["userId"] = $("#user_userId").text();
                                    d113["ownerId"] = $("#user_ownerId").text();
                                    
                                    d113["ugNum"] = ug_data[y2]["ugNum"]//组织代码
                                    d113["ugName"] = ug_data[y2]["ugName"]//组织名称
                                    d113["unlimited"] = "F";
                                    d113["unlimitedCp"] = "否";//是否全局
                                    if (csk1.length > 0) {
                                        var y = 0;
                                        for (var y3 = 0; y3 < csk1.length; y3++) {
                                            if (csk1[y3]["ugId"] == d113["ugId"]) {
                                                y = 1
                                            }
                                        }
                                        if (y == 0) {
                                            d1.push(d113)
                                        }
                                    } else {
                                        d1.push(d113)
                                    }
                                }
                            }
                        }

                    }
                    delete d2[i].LAY_TABLE_INDEX
                    n_d2.push(d2[i])
                }
                _d.push(d1, n_d2)
                // console.log("-------------> ");
                // console.log("d1--左边--> "+JSON.stringify(d1));
                // console.log("n_d2--右边--> "+JSON.stringify(n_d2));
                // console.log("_d--所有--> "+JSON.stringify(_d));
            }
        } else if ($("#csk_type").text() == 11) {//用户角色操作
            if (d1.length > 0 && type == 0) {//左边的数据移动到右表
                var n_d1 = [];
                d1.reverse()
                for (var i = 0; i < d1.length; i++) {
                    if (d1[i].LAY_CHECKED === true) {
                        delete d1[i].LAY_CHECKED
                        delete d1[i].LAY_TABLE_INDEX
                        // d2.unshift(d1[i])
                    } else {
                        delete d1[i].LAY_TABLE_INDEX
                        n_d1.push(d1[i])
                    }
                }

                _d.push(n_d1, d2)

            } else if (d2.length > 0 && type == 1) {//右边的数据移动到左表
                var n_d2 = [];
                // console.log("d1--左边--> "+JSON.stringify(d1));
                for (var i = 0; i < d2.length; i++) {
                    // console.log("d2[i]--> "+JSON.stringify(d2[i]));
                    if (d2[i].LAY_CHECKED && d2[i].LAY_CHECKED === true) {
                        delete d2[i].LAY_CHECKED
                        var d11 = JSON.stringify(d2[i]);//当前穿梭的数据
                        var d111 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js bug）
                        checked = $("input[name=Fruit]:checked").val();//单选选中类型
                        if (checked == 0) {//全局
                            var d110 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js）
                            d110["unitId"] = $("#user_ownerId").text();
                            d110["unlimited"] = "T";
                            d110["ugId"] = "-1";
                            d110["userId"] = $("#user_userId").text();
                            d110["ownerId"] = $("#user_ownerId").text();

                            d110["unlimitedCp"] = "是";//是否全局
                            var quan1 = 0;
                            for (var u0 = 0; u0 < d1.length; u0++) {
                                if (d1[u0]["roleId"] == d110["roleId"] && d1[u0]["unitId"] == d110["unitId"] && d1[u0]["ugId"] == d110["ugId"]) {
                                    quan1 = 1;
                                }
                            }
                            if (quan1 == 0) {
                                d1.push(d110)
                            }
                        } else if (checked == 1) {//组织层级
                            var data1 = JSON.parse($("#csk_data").text());//组织层级中的表格数据
                            if (data1.length < 1) {
                                layer.msg("组织层级未正常选择数据");
                            } else {
                                var csk0 = [];
                                for (var u1 = 0; u1 < d1.length; u1++) {
                                    if (d1[u1]["roleId"] == d111["roleId"]) {
                                        csk0.push(d1[u1])
                                    }
                                }
                                // console.log("穿梭框第"+(i+1)+"条相等数据   "+"csk0-->"+JSON.stringify(csk0)+"    csk0.length-->"+csk0.length);
                                for (var u = 0; u < data1.length; u++) {
                                    var d112 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js）
                                    d112["unitId"] = data1[u]["unitId"]
                                    // d112["unlimited"] = data1[u]["unlimited"]
                                    d112["ugId"] = data1[u]["ugId"]
                                    d112["userId"] = $("#user_userId").text();
                                    d112["ownerId"] = $("#user_ownerId").text();
                                    
                                    d112["unitCode"] = data1[u]["unitCode"]//组织代码
                                    d112["unitName"] = data1[u]["unitName"]//组织名称
                                    d112["unlimited"] = "F";
                                    d112["unlimitedCp"] = "否";//是否全局
                                    if (csk0.length > 0) {
                                        var p = 0;
                                        for (var u2 = 0; u2 < csk0.length; u2++) {
                                            if (csk0[u2]["unitId"] == d112["unitId"]) {
                                                p = 1
                                            }
                                        }
                                        if (p == 0) {
                                            d1.push(d112)
                                        }
                                    } else {
                                        d1.push(d112)
                                    }
                                }
                            }
                        } else if (checked == 2) {//组织分组
                            var ug_data = JSON.parse($("#ug_data").text());//组织分组中的表格数据
                            if (ug_data.length < 1) {
                                layer.msg("组织分组未正常选择数据");
                            } else {
                                var csk1 = [];
                                for (var y1 = 0; y1 < d1.length; y1++) {
                                    if (d1[y1]["roleId"] == d111["roleId"]) {
                                        csk1.push(d1[y1])
                                    }
                                }
                                for (var y2 = 0; y2 < ug_data.length; y2++) {
                                    var d113 = JSON.parse(d11);//转换穿梭数据的js物理引用地址（js）
                                    d113["unitId"] = 0
                                    d113["unlimited"] = "T"
                                    d113["ugId"] = ug_data[y2]["ugId"]
                                    d113["userId"] = $("#user_userId").text();
                                    d113["ownerId"] = $("#user_ownerId").text();
                                    
                                    d113["ugNum"] = ug_data[y2]["ugNum"]//组织代码
                                    d113["ugName"] = ug_data[y2]["ugName"]//组织名称
                                    d113["unlimited"] = "F";
                                    d113["unlimitedCp"] = "否";//是否全局
                                    if (csk1.length > 0) {
                                        var y = 0;
                                        for (var y3 = 0; y3 < csk1.length; y3++) {
                                            if (csk1[y3]["ugId"] == d113["ugId"]) {
                                                y = 1
                                            }
                                        }
                                        if (y == 0) {
                                            d1.push(d113)
                                        }
                                    } else {
                                        d1.push(d113)
                                    }
                                }
                            }
                        }

                    }
                    delete d2[i].LAY_TABLE_INDEX
                    n_d2.push(d2[i])
                }
                _d.push(d1, n_d2)
                // console.log("-------------> ");
                // console.log("d1--左边--> "+JSON.stringify(d1));
                // console.log("n_d2--右边--> "+JSON.stringify(n_d2));
                // console.log("_d--所有--> "+JSON.stringify(_d));
            }
        } else {
            if (d1.length > 0 && type == 0) {//左边的数据移动到右表
                var n_d1 = [];
                d1.reverse()
                for (var i = 0; i < d1.length; i++) {
                    if (d1[i].LAY_CHECKED === true) {
                        delete d1[i].LAY_CHECKED
                        delete d1[i].LAY_TABLE_INDEX
                        d2.unshift(d1[i])
                    } else {
                        delete d1[i].LAY_TABLE_INDEX
                        n_d1.push(d1[i])
                    }
                }

                _d.push(n_d1, d2)

            } else if (d2.length > 0 && type == 1) {//右边的数据移动到左表
                // console.log('右边的数据移动到左表')
                var n_d2 = [];
                for (var i = 0; i < d2.length; i++) {
                    if (d2[i].LAY_CHECKED && d2[i].LAY_CHECKED === true) {
                        delete d2[i].LAY_CHECKED
                        d2[i].LAY_TABLE_INDEX && delete d2[i].LAY_TABLE_INDEX
                        d1.push(d2[i])
                    } else {
                        delete d2[i].LAY_TABLE_INDEX
                        n_d2.push(d2[i])
                    }
                }
                _d.push(d1, n_d2)
            }
        }
        var options = transfer2.options
        options.data = _d
        transfer2.render(options)
    }

    //数据处理
    Class.prototype.shiftData = function (data1, data2, data, type) {
        var da = [];//未选中的数据
        // d1.reverse();
        $.each(data1, function (k, v) {
            if (!v.LAY_CHECKED) {
                da.push(v)
            }
        })
        // dd.reverse();
        $.each(data, function (kk, vv) {
            data2.unshift(vv)
        })
        var d = [];
        if (type == 0) {
            d.push(da)
            d.push(data2)
            $('#' + LEFT_BTN + this.index).children(BTN).addClass(DISABLED);
        } else if (type == 1) {
            d.push(data2)
            d.push(da)
            $('#' + RIGHT_BTN + this.index).children(BTN).addClass(DISABLED);
        }
        this.config.data = d
        this.render()
    }
    //选中状态
    table.on('checkbox(' + FILTER2 + ')', function (obj) {
        var idData = transfer2.idData, lenght = idData.length;
        if (lenght > 0) {
            for (var i = 0; i <= lenght - 1; i++) {
                var checkStatus1 = table.checkStatus(LEFT_TABLE + idData[i])
                    , data_1 = checkStatus1.data
                    , checkStatus2 = table.checkStatus(RIGHT_TABLE + idData[i])
                    , data_2 = checkStatus2.data;
                // console.log("data_1.length ---> "+data_1.length+"     -----  data_2.length--> "+data_2.length);
                if (data_1.length > 0) {
                    $('#' + LEFT_BTN + idData[i]).children(BTN).removeClass(DISABLED);
                } else {
                    $('#' + LEFT_BTN + idData[i]).children(BTN).addClass(DISABLED);
                }
                if (data_2.length > 0) {
                    $('#' + RIGHT_BTN + idData[i]).children(BTN).removeClass(DISABLED);
                } else {
                    $('#' + RIGHT_BTN + idData[i]).children(BTN).addClass(DISABLED);
                }
            }
        }
    });

    transfer2.render = function (options) {
        var inst = new Class(options)
        return thisRate.call(inst)
    }
    exports(MOD_NAME, transfer2)
})
